library(censusapi)
library(tidycensus)
library(tidyverse)
library(sf)
library(geojsonsf)
library(mapview)
library(dplyr)
library(plotly)
library(tigris)
library(readxl)
library(leaflet)
library(RColorBrewer)
library(sp)
library(tidyverse)
library(plotly)
library(sf)
library(mapview)
library(tigris)
library(censusapi)
library(leaflet)
library(usmap)
mapviewOptions(
basemaps = "CartoDB.Positron",
#vector.palette = colorRampPalette(cols)
)
options(
tigris_class = "sf",
tigris_use_cache = TRUE
)
Sys.setenv(CENSUS_KEY="0c313bd613a7281ae62c2fbb004d156d647e9c94")
acs_vars <-
listCensusMetadata(
name = "2018/acs/acs5",
type = "variables"
)
sc_internet <-
getCensus(
name = "acs/acs5",
vintage = 2018,
region = "block group:*",
regionin = "state:06+county:085",
vars = "group(B28002)"
) %>%
mutate(
blockgroup = paste0(state,county,tract,block_group)
) %>%
select_if(!names(.) %in% c("GEO_ID","state","county","tract","block_group","NAME")) %>%
dplyr::select(-c(contains("EA"),contains("MA"),contains("M"))) %>%
gather(
key = "variable",
value = "estimate",
-blockgroup) %>%
mutate(
label = acs_vars$label[match(variable,acs_vars$name)]
) %>%
dplyr::select(-variable) %>%
separate(label, into = c(NA, NA, "subscription", "type", "additional"), sep = "!!") %>%
filter(is.na(subscription) | subscription == "No Internet access") %>%
mutate(
subscription = replace_na(subscription, "total_num")
) %>%
dplyr::select(blockgroup, estimate, subscription) %>%
spread(key = subscription, value = estimate) %>%
mutate(
percent_no_internet = (`No Internet access`*100 / total_num) %>% round(1)
)
sc_blockgroups_sj <-
block_groups("CA","Santa Clara", cb=F, progress_bar=F) %>%
st_transform('+proj=longlat +datum=WGS84')
# Get San Jose geometry
sj_geom <- places("CA", cb = F, progress_bar = FALSE) %>%
filter(NAME == "San Jose") %>%
st_transform('+proj=longlat +datum=WGS84')
sj_blockgroups <- sc_blockgroups_sj[st_contains(sj_geom, sc_blockgroups_sj %>% st_centroid())[[1]],]
sj_blockgroups_internet <- sc_internet %>% filter(blockgroup %in% sj_blockgroups$GEOID) %>% left_join(sj_blockgroups, by = c("blockgroup" = "GEOID")) %>% st_as_sf()
total_no_internet_sj = sum(sj_blockgroups_internet$`No Internet access`)
total_sj <- sum(sj_blockgroups_internet$total_num)
perc_no_internet_sj <- total_no_internet_sj*100/total_sj
print(perc_no_internet_sj)
## [1] 8.052816
sj_blockgroups_full <-
block_groups("CA","Santa Clara", cb=F, progress_bar=F) %>%
st_transform('+proj=longlat +datum=WGS84') %>%
filter(GEOID %in% sj_blockgroups$GEOID)
mapview(sj_blockgroups_internet %>% dplyr::select(percent_no_internet), layer.name = "Percentage of households without internet access")
sc_computer <- getCensus(
name = "acs/acs5",
vintage = 2018,
region = "block group:*",
regionin = "state:06+county:085",
vars = "group(B28003)"
) %>%
mutate(blockgroup = paste0(state,county,tract,block_group)) %>%
select_if(!names(.) %in% c("GEO_ID","state","county","tract","block_group","NAME")) %>%
dplyr::select(-c(contains("EA"),contains("MA"),contains("M"))) %>%
gather(key = "variable", value = "estimate", -blockgroup) %>%
mutate(label = acs_vars$label[match(variable,acs_vars$name)]) %>%
dplyr::select(-variable) %>%
separate(label, into = c(NA, NA, "computer", "internet"), sep = "!!") %>%
filter(is.na(computer) | computer == "No computer") %>%
mutate(computer = replace_na(computer, "total_num")) %>%
dplyr::select(blockgroup, estimate, computer) %>%
spread(key = computer, value = estimate) %>%
mutate(percent_no_computer = (`No computer`*100 / total_num) %>% round(1))
sj_blockgroups_computer <- sc_computer %>% filter(blockgroup %in% sj_blockgroups$GEOID) %>% left_join(sj_blockgroups, by = c("blockgroup" = "GEOID")) %>% st_as_sf()
total_no_computer_sj = sum(sj_blockgroups_computer$`No computer`)
total_sj_comp <- sum(sj_blockgroups_computer$total_num)
perc_no_computer_sj <- total_no_computer_sj*100/total_sj_comp
print(perc_no_computer_sj)
## [1] 5.840027
mapview(sj_blockgroups_computer %>% dplyr::select(percent_no_computer), layer.name = "Percentage of households without a computer")
A block with high % of no internet access:
example <-
sj_blockgroups_internet[29,]
mapview(example)
# This creates file paths for the SafeGraph folder and COVID-19 GitHub folder.
sg_path <- "/Users/armellecoutant/pCloud Drive/SFBI/Restricted Data Library/Safegraph/"
github_path <- "/Users/armellecoutant/Documents/GitHub/covid19/"
# This sets URLs for Point of Interest (POI) location data.
poi_url_Mar2020 <-
paste0(sg_path, "/core/2020/03/CoreRecords-CORE_POI-2019_03-2020-03-25/ca_poi_Mar20.rds")
poi_url_Apr2020 <-
paste0(sg_path, "/core/2020/04/CoreApr2020Release-CORE_POI-2020_03-2020-04-07/ca_poi_Apr20.rds")
poi_url_2019 <-
paste0(sg_path,'covid19analysis/ca_poi.rds')
Can be associated with grocery store locations to determine which grocery stores to target for outreach.
poi_caApr20 <- readRDS (poi_url_Apr2020)
poi_sj <-
poi_caApr20 %>%
filter(city == "San Jose") %>%
filter(naics_code == "445110")
coordinates(poi_sj) <- c("longitude", "latitude")
proj4string(poi_sj) <- CRS("+init=epsg:4326")
mapview(poi_sj)
# shapes <-
# read_csv("/Users/armellecoutant/Documents/GitHub/218z/Armelle_Coutant/digital_inclusion/gtfs_vta/shapes.txt")